let Fly = require("flyio/dist/npm/wx")
let fly = new Fly
import store from '@/store'

//设置超时
fly.config.timeout = 30000;
//设置请求基地址
fly.config.baseURL = 'https://m.shangpiaoquan.cn';

// 添加请求拦截器
fly.interceptors.request.use((request) => {
  debugger
  // 给所有请求添加自定义header，带上token信息让服务器验证用户登陆
  // let token = uni.getStorageSync('aliToken');
  // request.headers['Authorization'] = token;
  const token = store.state.user.token
  if (token) {
    request.url = `${request.url}?SID=${token}`
  }
  // 在当前页面显示导航条加载动画
  uni.showNavigationBarLoading();
  return request;
})

// 添加响应拦截器，响应拦截器会在then/catch处理之前执行
fly.interceptors.response.use(
  ({data}) => {
    debugger
    uni.hideNavigationBarLoading()
    const { code, errorMsg } = data
    if (code === 'OK') {
      return data
    } else if (code === 'NOT_LOGIN') {
      // 应该跳转登录页面
      return Promise.reject(data)
    } else if (code === 'FIELD_ERROR') {
      for (let key in errorMsg) {
        uni.showToast({
          title: `${key}: ${errorMsg[key]}`,
          icon: "none",
        });
      }
      return Promise.reject(data)
    } else {
      uni.showToast({
        title: data.errorMsg,
        icon: 'none',
      });
      return Promise.reject(data)
    }
  },
  (err) => {
    debugger
    console.log(err)
    // 在当前页面隐藏导航条加载动画
    uni.hideNavigationBarLoading()

    let code = err.response.status;
    if (code === 401) {
      uni.navigateTo({
        url: "/pages/mine/login?interceptors=1"
      });
    } else if (code === 403) {
      uni.showToast({
        title: '没有权限',
        icon: "none",
      });
      return Promise.reject(err);
    } else {
        uni.showToast({
          title: err.response.data.errorMsg || err.response.data.error,
          icon: "none",
        });
        return Promise.reject(err);
      }
    }
)

export default fly;
